﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LibreriaAcceso.Clases
{
    public class ParametrosPassword
    {
        /// <summary>
        /// Minima longitud de la contraseña
        /// </summary>
        public int MinimoLongitud;
        /// <summary>
        /// Maxima longitud de la contraseña, dejar en 0 si no hay un maximo, se hace del tamaño del minimo.
        /// </summary>
        public int MaximoLongitud=0;
       
        /// <summary>
        /// Minimo numero de alfanumericos de la contraseña, dejar en 0 si no es requerido
        /// </summary>
        public int MinimoMayusculas=0;
        /// <summary>
        /// Minimo numero de minusculas de la contraseña, dejar en 0 si no es requerido
        /// </summary>
        public int MinimoMinusculas = 0;
        /// <summary>
        /// Minimo numero de simbolos de la contraseña, dejar en 0 si no es requerido
        /// </summary>
        public int MinimoSimbolos = 0;
        /// <summary>
        /// Maximo numero de simbolos de la contraseña, dejar en 0 si son ilimitados
        /// </summary>
        public int MaximoSimbolos = 0;
        /// <summary>
        /// Minimo caracteres numericos de la contraseña, dejar en 0 si no es requerido
        /// </summary>
        public int MinimoNumeros = 0;
        /// <summary>
        /// Maximo caracteres numericos de la contraseña, dejar en 0 si son ilimitados
        /// </summary>
        public int MaximoNumeros = 0;
        /// <summary>
        /// Lista de simbolos que puede tener la contraseña, no sobreescribir para usar la lista generica
        /// </summary>
        public List<string> ListaDeSimbolos = new List<string>(new string[] { "'", "(", ")", "[", "]", "-", "_", ".", ",", ";", ":", "$", "#", "\"", "&", "%", "=", "?", "¿", "¡", "!", "*", "+", "}", "{", "<", ">", "~", "|", "^" });
        public List<string> SimbolosProhibidos 
        {
            get { return new List<string>(new string[] { "\\","/" }); }
            
        }
        public ParametrosPassword(int minimoLongitud)
        {
            if (minimoLongitud <= 0)
            {
                throw new ExcepciondeLibreriaAcceso("La longitud debe de ser mayor a 0.");
            }
            MinimoLongitud = minimoLongitud;
        }
    }
}
